Skip to content

docs: fix first-package guide (includes: auto explained, correct skill paths)#1129

Merged
danielmeppiel merged 1 commit intomainfrom
docs/first-package-includes-and-skill-paths
May 4, 2026
Merged

docs: fix first-package guide (includes: auto explained, correct skill paths)#1129
danielmeppiel merged 1 commit intomainfrom
docs/first-package-includes-and-skill-paths

Conversation

@danielmeppiel
Copy link
Copy Markdown
Collaborator

TL;DR

Three empirically-verified corrections to getting-started/first-package.md (Your First Package). All three were silently wrong: apm init -y emits includes: auto, that field is what makes apm install (no args) work, and skills no longer land under .github/skills/.

Why

While reviewing the docs against actual behavior on main, I ran apm init -y team-skills followed by apm install against the exact tree the guide tells users to build. Three discrepancies surfaced:

What the doc says What actually happens
apm.yml is shown without includes: auto apm init -y writes includes: auto (added in #887)
Step 4 says "APM treats your repo as the package and deploys .apm/ content" with no further explanation The mechanism is includes: auto. Set includes: [] (or omit the field) and local content stops deploying. The load-bearing field was invisible to the reader.
Install output and tree diagram both put skills under .github/skills/ Skills land under .agents/skills/ (cross-client universal) per the routing convergence. Agents stay under .github/agents/.

The first two compound: if a user copy-pastes the doc's apm.yml over the generated one, they lose includes: auto and step 4 silently does nothing.

What

Section Change
§1 Scaffold (apm.yml block) Add includes: auto to match what apm init -y actually writes. Add a paragraph explaining the field is load-bearing for step 4 and what [] / explicit list overrides mean.
§4 Deploy and use (install output) 1 skill(s) integrated -> .agents/skills/ (was .github/skills/). Plural agents string aligns with current CommandLogger output. Added a paragraph explaining the agent/skill split (runtime-specific vs cross-client) and the Claude exception.
§4 tree diagram Show the actual generated layout: .agents/skills/ for the skill, .github/agents/ for the agent.

Validation

mkdir -p /tmp/check && cd /tmp/check
uv run --project /path/to/apm apm init -y team-skills
cat team-skills/apm.yml
# -> includes: auto present

cd team-skills
mkdir -p .apm/skills/pr-description .apm/agents
echo '---\nname: pr-description\ndescription: test\n---' > .apm/skills/pr-description/SKILL.md
echo '---\nname: team-reviewer\ndescription: test\n---' > .apm/agents/team-reviewer.agent.md
uv run --project /path/to/apm apm install
# Output:
#   |-- 1 agents integrated -> .github/agents/
#   |-- 1 skill(s) integrated -> .agents/skills/

Both differences confirmed against main HEAD.

How to test

git fetch origin docs/first-package-includes-and-skill-paths
git checkout docs/first-package-includes-and-skill-paths
cd docs && npm install && npm run dev
# Visit /getting-started/first-package/ and verify:
#  - The apm.yml block under "1. Scaffold" includes `includes: auto`
#  - There is a paragraph explaining the field below the YAML block
#  - Step 4's install output shows .agents/skills/ for the skill
#  - Step 4's tree diagram shows .agents/skills/ + .github/agents/ split

Trade-offs

  • The new tree diagram is one level wider (two generated dirs instead of one). Slightly more visual noise, but accurate -- and it sets up the skill-routing convergence concept the user will hit again the moment they target multiple runtimes.
  • I did not touch the §4 callout about apm compile vs apm install -- that distinction is still correct.

Follow-up (not in this PR)

While here I noticed getting-started/migration.md (sidebar title "Existing Projects") muddles two audiences:

  • §1-3: adoption story for new APM users on existing repos (correct fit)
  • §4 "Deprecated targets" + §5 "Skill routing convergence": upgrade-impact notices for users already on a previous APM version (wrong fit -- belongs in CHANGELOG.md or a dedicated "Upgrading" page)

Worth a separate PR to relocate. Not bundling here to keep this one focused.

Related

Three corrections, all verified empirically against latest main:

1. The shown apm.yml is missing 'includes: auto'. apm init -y emits
   that field today (added in #887 so day-2 audits don't surprise the
   maintainer with an 'includes not declared' advisory). Without it,
   step 4's 'apm install with no args deploys local content' is a lie.

2. Explain WHY apm install (no args) deploys .apm/. The mechanism is
   includes: auto -- it's the load-bearing field the previous version
   left invisible. Without this paragraph, removing the field looks
   harmless and silently breaks local deployment.

3. Skill output path was wrong. Post-skill-routing convergence,
   skills land under .agents/skills/ (the cross-client universal
   location) for Copilot/Cursor/OpenCode/Codex/Gemini. Only Claude
   keeps .claude/skills/. The doc still showed .github/skills/ for
   both the install output snippet and the tree diagram.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 4, 2026 11:21
@danielmeppiel danielmeppiel merged commit 141fa5b into main May 4, 2026
21 checks passed
@danielmeppiel danielmeppiel deleted the docs/first-package-includes-and-skill-paths branch May 4, 2026 11:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the “Your First Package” guide to match current apm init / apm install behavior, specifically around the scaffolded manifest fields and where skills vs agents are deployed.

Changes:

  • Adds includes: auto to the example apm.yml and explains what it means.
  • Fixes the documented install output to show skills integrating to .agents/skills/ (while agents integrate to .github/agents/).
  • Updates the directory tree diagram to reflect the .agents/ (skills) + .github/ (agents) split.
Show a summary per file
File Description
docs/src/content/docs/getting-started/first-package.md Aligns the first-package getting-started guide with current manifest scaffold and skill/agent install routing paths.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment on lines +55 to +59
`includes: auto` is the field that makes step 4 work: with no remote
dependencies declared, `apm install` walks your local `.apm/` tree
and deploys what it finds. Set `includes: []` (or omit the field) and
local content stops deploying. Override with an explicit list of
paths to gate exactly what ships.
+-- .agents/ # generated -- cross-client skills
| +-- skills/
| | +-- pr-description/SKILL.md
| +-- pr-description/SKILL.md
danielmeppiel added a commit that referenced this pull request May 5, 2026
Roll forward the four PRs merged since v0.12.1:

- #1137 feat(audit): default-on integration drift detection
- #1135 fix(deps): subdir-agnostic bare cache (parallel sparse-checkout race)
        also resolves duplicate report #1140 (ADO sub-path manifestation)
- #1129 docs: first-package guide accuracy (includes: auto, skill paths)
- #1127 docs: APM's role for skills, plugins-as-packages, ADO sub-paths

Bump pyproject.toml + uv.lock 0.12.1 -> 0.12.2 and convert the
Unreleased CHANGELOG block into the 0.12.2 section, with a single
'so what' line per merged PR per the changelog contract.

Co-authored-by: Daniel Meppiel <copilot-rework@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants